#define _CRT_SECURE_NO_WARNINGS 1

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>

using namespace std;

//int main()
//{
//	int arr[] = { 1,3,5,6};
//	int l = 0, r = 3,num = 5;
//	while (l < r)
//	{
//		int mid = (l + r ) / 2;
//		if (arr[mid] >= num)
//		{
//			r = mid;
//		}
//		else
//		{
//			l = mid + 1;
//		}
//	}
//	printf("%d\n", r);
//	return 0;
//}

bool check(string s)
{
    int l = 0, r = s.length() - 1;
    while (l < r)
    {
        if (s[l] != s[r])
        {
            return false;
        }
        l++;
        r--;
    }
    return true;
}

int main()
{
    string s1, s2;
    getline(cin, s1);
    getline(cin, s2);
    s1.reserve(100);
    s2.reserve(100);
    string str = s1;
    int cnt = 0;
    for (int i = 0; i <= str.length(); i++)
    {
        auto it = s1.begin();
        s1.insert(it + i, s2.begin(), s2.end());
        if (check(s1)) cnt++;
        s1 = str;
    }
    printf("%d\n", cnt);
    return 0;
}

//const int N = 100010;
//int s[N];
//int n;
//
//int main()
//{
//    scanf("%d", &n);
//    for (int i = 1; i <= n; i++)
//    {
//        scanf("%d", &s[i]);
//        s[i] += s[i - 1];
//    }
//    int nmax = s[0];
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = i; j <= n; j++)
//		{
//			int t;
//			if (i == j) t = s[i] - s[i - 1];
//			else t = s[j] - s[i - 1];
//			if (t > nmax)
//			{
//				nmax = t;
//			}
//		}
//	}
//    printf("%d\n", nmax);
//    return 0;
//}


const int N = 100010;
int s[N],dp[N];
int n;

int main()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", &s[i]);
	for (int i = 1; i <= n; i++)
	{
		dp[i] = max(dp[i - 1] + s[i], dp[i]);
	}
	int nmax = INT_MIN;
	for (int i = 1; i <= n; i++)
	{
		if (dp[i] > nmax)
		{
			nmax = dp[i];
		}
	}
	printf("%d", nmax);
	return 0;
}
